#ifndef DAY_H
#define DAY_H

#include <set>
#include "Appointment.h"
#include <iomanip>

using namespace std;

class Day {

	friend ostream &operator<< (ostream& os, const Day & day);

protected:
	set<Appointment> appointments_;
	int day_index_;

public:

	Day(const int & day_index) {day_index_ = day_index;};
	~Day() {};
	Day(const Day & day);
	Day & operator= (const Day & day);

	virtual void addAppointment(const Appointment & app);
	virtual void removeAppointment(const Appointment & app);
	virtual const Appointment * find (const int & start_hour, const int & start_min) const;
	virtual inline const set<Appointment> &  getAppointments() const { return appointments_;};
	virtual inline const int & getDayIndex() const { return day_index_; };

	static const int days_in_week = 7;
	static const int hours_in_day = 24;
	static const string days_of_week[days_in_week];

};

#endif